Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 skin-theme-clientpref-day vector-sticky-header-enabled" lang="de" dir="ltr"><head>
<meta charset="UTF-8">
<title>ML (Programmiersprache)</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://de.wikipedia.org/wiki/ML_(Programmiersprache)"> <link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link href="./_mw_/ext.gadget.citeRef.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.defaultPlainlinks.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonHide.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonLayout.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonStyle.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiDarkmode.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiResponsive.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.specialSearch.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-ML_Programmiersprache rootpage-ML_Programmiersprache skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">ML (Programmiersprache)</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="de" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="de" dir="ltr"><p><b>Meta Language</b> (<b>ML</b>) beschreibt eine Familie <a href="Funktionale_Programmierung" title="Funktionale Programmierung">funktionaler Programmiersprachen</a> mit statischer <a href="Typisierung_(Informatik)" title="Typisierung (Informatik)">Typisierung</a>, <a href="Polymorphie_(Programmierung)" title="Polymorphie (Programmierung)">Polymorphie</a>, <a href="Automatische_Speicherbereinigung" class="mw-redirect" title="Automatische Speicherbereinigung">automatischer Speicherbereinigung</a> und im Allgemeinen <a href="Auswertung_(Informatik)" title="Auswertung (Informatik)">strenger Auswertung</a>. ML ist allerdings keine rein funktionale Sprache wie <a href="Haskell_(Programmiersprache)" title="Haskell (Programmiersprache)">Haskell</a>, sondern erlaubt an manchen Stellen auch <a href="Imperative_Programmierung" title="Imperative Programmierung">imperative</a> Konstrukte und Wirkungen, beispielsweise für Dateizugriffe.
</p><p>ML wurde <a href="1973" title="1973">1973</a> von <a href="Robin_Milner" title="Robin Milner">Robin Milner</a> an der <a href="Universit%C3%A4t_Edinburgh" class="mw-redirect" title="Universität Edinburgh">Universität Edinburgh</a> als Teil eines <a href="Maschinengest%C3%BCtztes_Beweisen" title="Maschinengestütztes Beweisen">Theorem-Beweis-Programms</a> LCF (Logic of Computable Functions) entwickelt, welches automatisiert die Korrektheit von Programmen beweisen sollte. Seither hat sich ML zu einer vollständigen und eigenständigen Programmiersprache entwickelt, die insbesondere im wissenschaftlichen Umfeld verwendet wird. Die Sprache wird an einigen Universitäten als primäre Programmiersprache gelehrt.
</p>
<div class="mw-heading mw-heading2"><h2 id="Die_ML-Familienmitglieder">Die ML-Familienmitglieder</h2></div>
<p>Unter rund einem Dutzend Varianten sind die bekanntesten Vertreter von ML „<a href="Standard_ML" title="Standard ML">Standard ML</a>“ (im folgenden SML genannt), „Lazy ML“ und „Caml“. <b>Caml</b> steht für „Categorical Abstract Machine + ML“ und wurde am <a href="INRIA" class="mw-redirect" title="INRIA">INRIA</a> (Institut National de Recherche Informatique et en Automatique) in Frankreich von <a href="G%C3%A9rard_Huet" title="Gérard Huet">Gérard Huet</a> in den Jahren 1984–85 entwickelt und 1990 unter Xavier Leroy zu <a href="Objective_CAML" class="mw-redirect" title="Objective CAML">Objective CAML</a> (OCaml) erweitert. OCaml vereinigt funktionale, imperative und <a href="Objektorientierte_Programmierung" title="Objektorientierte Programmierung">objektorientierte</a> Sprachkonzepte. Lazy ML ist ein <a href="Dialekt#Dialekte_bei_Programmiersprachen" title="Dialekt">Dialekt</a> von ML, der mit dem Grundsatz der strikten <a href="Auswertung_(Informatik)" title="Auswertung (Informatik)">Auswertung</a> bricht und <a href="Lazy_Evaluation" title="Lazy Evaluation">Bedarfsauswertung</a> einführt. Standard ML hingegen war <a href="Robin_Milner" title="Robin Milner">Robin Milners</a> Versuch 1984, die Sprachdialekte von ML zu vereinigen. Neben dem ML-Kern sind auch andere Ideen, z.&nbsp;B. die Funktionsdeklaration durch <a href="Pattern_Matching" title="Pattern Matching">Muster</a> der Programmiersprache Hope, in SML eingeflossen. Es gibt eine 1997 überarbeitete Version von SML, die in der Literatur meist „Standard ML’97“ genannt wird, um sie von der Ursprungsversion zu unterscheiden. Die Referenzimplementierung von SML ist <a href="Standard_ML_of_New_Jersey" title="Standard ML of New Jersey">Standard ML of New Jersey</a> (SML/NJ).
</p>
<div class="mw-heading mw-heading2"><h2 id="Literatur">Literatur</h2></div>
<ul><li><a href="Gert_Smolka" title="Gert Smolka">Gert Smolka</a>: <cite style="font-style:italic">Programmierung – eine Einführung in die Informatik mit Standard ML</cite>. Oldenbourg Wissenschaftsverlag, München 2008, ISBN 978-3-486-58601-5.<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rfr_id=info:sid/de.wikipedia.org:ML+%28Programmiersprache%29&amp;rft.au=Gert+Smolka&amp;rft.btitle=Programmierung+-+eine+Einf%C3%BChrung+in+die+Informatik+mit+Standard+ML&amp;rft.date=2008&amp;rft.genre=book&amp;rft.isbn=9783486586015&amp;rft.place=M%C3%BCnchen&amp;rft.pub=Oldenbourg+Wissenschaftsverlag" style="display:none">&nbsp;</span></li>
<li>L.C. Paulson: <cite style="font-style:italic">ML for the working programmer</cite>. University Pr., Cambridge 1991, ISBN 0-521-42225-6.<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rfr_id=info:sid/de.wikipedia.org:ML+%28Programmiersprache%29&amp;rft.au=L.C.+Paulson&amp;rft.btitle=ML+for+the+working+programmer&amp;rft.date=1991&amp;rft.genre=book&amp;rft.isbn=0521422256&amp;rft.place=Cambridge&amp;rft.pub=University+Pr." style="display:none">&nbsp;</span></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Weblinks">Weblinks</h2></div>
<ul><li><a rel="nofollow" class="external text" href="http://www.smlnj.org/">Standard ML of New Jersey</a> (englisch)</li>
<li><a rel="nofollow" class="external text" href="http://caml.inria.fr/">The OCaml Language</a> (englisch/französisch)</li>
<li>Chris Beach: <style data-mw-deduplicate="TemplateStyles:r261891140">
/* start https://de.wikipedia.org/ */


.mw-parser-output .webarchiv-memento a{color:inherit}


/* end https://de.wikipedia.org/ */
</style><a rel="nofollow" class="external text" href="https://web.archive.org/web/20041012221419/http://www.bath.ac.uk/~cs1cb/ML/index.htm">History of ML</a> (<span class="webarchiv-memento"><a href="Webarchivierung#Begrifflichkeiten" title="Webarchivierung">Memento</a></span> vom 12. Oktober 2004 im <i><a href="Internet_Archive" title="Internet Archive">Internet Archive</a></i>) (englisch)</li></ul></div><!--htdig_noindex--><div><div class="zim-footer">
Dieser Artikel wurde von <a class="external text" title="Zuletzt bearbeitet am 2020-10-26" href="https://de.wikipedia.org/wiki/?title=ML_(Programmiersprache)&amp;oldid=204900581">Wikipedia</a> herausgegeben. Der Text ist unter <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.de">Creative Commons Attribution-Share Alike 4.0</a> verfügbar, sofern nicht anders angegeben. Für die Mediendateien können zusätzliche Bedingungen gelten.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>

</body></html>